C语言 您所在的位置:网站首页 c语言 输入输出字符串 C语言

C语言

2024-07-13 02:06| 来源: 网络整理| 查看: 265

 目录:

一:printf格式字符串

1.一般形式

2.类型字符

3.标志字符

4.使用printf函数时注意的问题

二:scanf格式字符串

1.一般形式

2.类型字符

3.标志字符

4.使用scanf函数时注意的问题

三:double 和 float 对于——%lf和%f 的用法

1.printf输出

2.scanf 输入

一:printf格式字符串

函数原型在头文件“stdio.h”中

1.一般形式

一般形式为: %[标志][输出最小宽度][.精度][长度]类型其中方括号[]中的项为可选项

2.类型字符

d                 以十进制形式输出带符号整数(正数不输出符号) o                 以八进制形式输出无符号整数(不输出前缀O) x                 以十六进制形式输出无符号整数(不输出前缀OX) u                 以十进制形式输出无符号整数 f                 以小数形式输出单、双精度实数 e                 以指数形式输出单、双精度实数 g                 以%f%e中较短的输出宽度输出单、双精度实数 c                 输出单个字符 s                 输出字符串

3.标志字符

标志格式字符      标 志 意 义 -           结果左对齐,右边填空格 +          输出符号(正号或负号) 空格                          输出值为正时冠以空格,为负时冠以负号 #             对c,s,d,u类无影响;对o类, 在输出时加前缀0;                                  对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点 .                                如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数 h                               表示按短整型量输出 l                                表示按长整型量输出

4.使用printf函数时注意的问题

输出表列中的求值顺序:不同的编译系统不一定相同,可以从左到右,也可从右到左。

Turbo C是按从右到左进行的。但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右

二:scanf格式字符串

函数原型在头文件“stdio.h”中

1.一般形式

一般形式为: %[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项

2.类型字符

d     输入十进制整数 o     输入八进制整数 x     输入十六进制整数 u     输入无符号十进制整数 f或e     输入实型数(用小数形式或指数形式) c     输入单个字符 s     输入字符串

3.标志字符

*                 表示该输入项读入后不赋予相应的变量,即跳过该输入值                 【如:scanf("%d %*d %d",&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b】 %               宽度,如果时小数包含小数点                  【比如你的scanf语句吸收格式字段是%4f,但是你输入了3.1415926那么,它只会吸收3.14,

                  作为浮点类型。后面的15926以整型的方式存在于缓存中。】 h                表示输入短整型数据 l                 表示输入长整型数据(如%ld) 和单精度浮点数(如%lf)

4.使用scanf函数时注意的问题

a. scanf函数中没有类似printf的精度控制,如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。 b. scanf中要求给出变量地址,如给出变量名则会出错。如 scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。 c. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。   编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。 d. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 e.在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。 f.对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。 g.可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数

scanf("%c%c%c",&a,&b,&c); 输入为:d e f 则把'd'赋予a, 'f'赋予b,'e'赋予c。 只有当输入为:def时,才能把'd'赋于a,'e'赋予b,'f'赋予c。 如果在格式控制中加入空格作为间隔, 如 scanf ("%c %c %c",&a,&b,&c);则输入时各数据之间可加空格。 scanf("%d,%d,%d",&a,&b,&c); 其中用非格式符“ , ”作间隔符, 故输入时应为: 5,6,7 又如: scanf("a=%d,b=%d,c=%d",&a,&b,&c); 则输入应为a=5,b=6,c=7 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。

补充可查看:

https://blog.csdn.net/liu17234050/article/details/104179726 三:double 和 float 对于——%lf和%f 的用法 1.printf输出

double 和 float 都可以用 %f 占位符 可以混用

而 double 可以额外用 %lf

2.scanf 输入

double 必须用 %lf

float 必须用 %f 不能混用

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有